/***************************************************************************/
/* Procedimiento:  InterfazSeguridadInsertar
/* Descripcion:   Insertar o Modifica una fila en la tabla InterfazSeguridad
/* Parametros:    ?InfoParametros
/*                pTransaccion. Numero identificador de la Transaccion
/*                pMensaje. Mensaje de comfirmacion o excepcion
/* Comentarios:         
/****************************************************************************/

PROCEDURE  InterfazSeguridadInsertarModificar(pnidDocumento NUMBER, pnidViaje NUMBER, pbuque VARCHAR2, 
								pfecha_Atraque VARCHAR2, pfecha_ETA VARCHAR2, pfecha_ETF VARCHAR2, 
								pnumCertificado VARCHAR2, pNaviera VARCHAR2, pMMSI VARCHAR2, 
								pIMO NUMBER, pmarsec_Puerto VARCHAR2, pmarsec_Buque VARCHAR2, 
								pvigencia VARCHAR2, pbandera VARCHAR2, pobservaciones VARCHAR2, 
								 pTransaccion OUT NUMBER, pMensaje OUT VARCHAR2)
AS
vExisteRegistro NUMBER(1);
BEGIN
  SELECT count(*)
  INTO   vExisteRegistro
  FROM   InterfazSeguridad
  WHERE  nidDocumento=pNidDocumento;
  
  IF vExisteRegistro=0 THEN
    INSERT INTO InterfazSeguridad
	           (nid, nidDocumento, nidViaje, 
				buque, fecha_Atraque, fecha_ETA, 
				fecha_ETF, numCertificado, Naviera, 
				MMSI, IMO, marsec_Puerto, 
				marsec_Buque, vigencia, bandera, 
				observaciones)
    VALUES     (seq_InterfazSeguridad.nextval, pnidDocumento, pnidViaje, 
				pbuque, to_date(pfecha_Atraque,'DD/MM/YYYY HH24:MI:SS'), to_date(pfecha_ETA,'DD/MM/YYYY HH24:MI:SS'), 
				to_date(pfecha_ETF,'DD/MM/YYYY HH24:MI:SS'), pnumCertificado, pNaviera, 
				pMMSI, pIMO, pmarsec_Puerto, 
				pmarsec_Buque, to_date(pvigencia,'DD/MM/YYYY HH24:MI:SS'), pbandera, 
				pobservaciones);
  ELSE
    UPDATE InterfazSeguridad
    SET    nidDocumento=pnidDocumento, nidViaje=pnidViaje, 
			buque=pbuque, fecha_Atraque=to_date(pfecha_Atraque,'DD/MM/YYYY HH24:MI:SS'), fecha_ETA=to_date(pfecha_ETA,'DD/MM/YYYY HH24:MI:SS'), 
			fecha_ETF=to_date(pfecha_ETF,'DD/MM/YYYY HH24:MI:SS'), numCertificado=pnumCertificado, Naviera=pNaviera, 
			MMSI=pMMSI, IMO=pIMO, marsec_Puerto=pmarsec_Puerto, 
			marsec_Buque=pmarsec_Buque, vigencia=to_date(pvigencia,'DD/MM/YYYY HH24:MI:SS'), bandera=pbandera, 
			observaciones=pobservaciones
    WHERE  nidDocumento=pNidDocumento;
  END IF;
  
  COMMIT;
  pTransaccion := 1;
  pMensaje := 'Terminado OK';
  dbms_output.put_line('Terminado OK');

EXCEPTION
  WHEN OTHERS THEN
    pTransaccion := 0;
    pMensaje := 'Error en  InterfazSeguridad_InsertarModificar:' || SQLCODE || ' Mensaje: ' || sqlerrm;
    dbms_output.put_line('Error en  InterfazSeguridad_InsertarModificar:' || SQLCODE || ' Mensaje: ' || sqlerrm);
END;
